home *** CD-ROM | disk | FTP | other *** search
/ Libris Britannia 4 / science library(b).zip / science library(b) / DTP / DTP_TEX / 3238.ZIP / DVIEPS2.ZIP / DVIDEFS.H < prev    next >
Text File  |  1988-11-01  |  10KB  |  322 lines

  1. /*=======================================================================
  2. *    Program : DVIEPS
  3. *    Purpose : Epson-alike printer driver
  4. *       Date : Oct 1988
  5. *========================================================================
  6. *   Compiler : Microsoft V5.1 C Compiler
  7. *     Linker : Microsoft V3.61 Linker
  8. * Enviroment : MS-DOS 3.21
  9. *========================================================================
  10. * Edit History
  11. *
  12. *   /  /   -gbm- 
  13. *
  14. *======================================================================*/
  15.  
  16.  
  17. #define DISKFULL(fp)    (ferror(fp) && (errno == ENOSPC))
  18.  
  19. #define FILE_CNT(fp)    (fp)->_cnt
  20. #define FILE_BASE(fp)    (fp)->_base
  21. #define FILE_PTR(fp)    (fp)->_ptr
  22.  
  23. #define MAXDRIFT    2    /* we insist that    abs|(hh-pixel_round(h))<=MAXDRIFT| */
  24.  
  25. #define MAXOPEN        5
  26.  
  27. #define VIRTUAL_FONTS 1
  28.  
  29. #define IBM_PC_MICROSOFT    1
  30.  
  31. #define LINT_ARGS    1
  32.  
  33. #define PS_MAXWIDTH    72
  34.  
  35. #define PS_SHORTLINES    1
  36.  
  37. #define  FALSE          0
  38. #define  TRUE          1
  39.  
  40. #include <stdio.h>
  41. #include <errno.h>
  42. #include <io.h>
  43. #include <stdlib.h>
  44. #include <string.h>
  45. #include <time.h>
  46. #include <sys/types.h>
  47. #include <sys/stat.h>
  48. #include <ctype.h>
  49. #include <math.h>
  50.  
  51. #define VERSION_NO    "2.11 [test]"    /* DVI driver version number */
  52.  
  53. #define  DEVICE_ID    "Epson 9-pin family 240/216-dpi matrix printer"
  54.  
  55. #define  XDPI        240        /* horizontal dots/inch */
  56. #define  YDPI        216        /* vertical dots/inch */
  57.  
  58. #define  XPSIZE        8        /* horizontal paper size in inches */
  59. #define  XSIZE        (((XDPI*XPSIZE+2*32-1)/\
  60.                 (2*32))*(2*32))
  61.                     /* number of horizontal dots; */
  62.                     /* MUST BE multiple of */
  63.                     /* 2*32 */
  64. #define  XWORDS        ((XSIZE + 32 - 1)/32)
  65.                     /* number of words in rows  */
  66.                     /* of bitmap array */
  67.  
  68. #define  YPSIZE        11        /* vertical paper size in inches */
  69. #define  YSIZE        (YDPI*YPSIZE)    /* number of vertical dots */
  70.  
  71. #define XBIT XWORDS
  72. #define YBIT YSIZE
  73.  
  74.  
  75. #define  SETC_000    0
  76. /* SETC_001 .. SETC_126 not required */
  77. #define  SETC_127  127
  78. #define  SET1          128
  79. #define  SET2          129
  80. #define  SET3          130
  81. #define  SET4          131
  82. #define  SET_RULE      132
  83. #define  PUT1          133
  84. #define  PUT2          134
  85. #define  PUT3          135
  86. #define  PUT4          136
  87. #define  PUT_RULE      137
  88. #define  NOP           138
  89. #define  BOP           139
  90. #define  EOP           140
  91. #define  PUSH          141
  92. #define  POP           142
  93. #define  RIGHT1        143
  94. #define  RIGHT2        144
  95. #define  RIGHT3        145
  96. #define  RIGHT4        146
  97. #define  W0            147
  98. #define  W1            148
  99. #define  W2            149
  100. #define  W3            150
  101. #define  W4            151
  102. #define  X0            152
  103. #define  X1            153
  104. #define  X2            154
  105. #define  X3            155
  106. #define  X4            156
  107. #define  DOWN1         157
  108. #define  DOWN2         158
  109. #define  DOWN3         159
  110. #define  DOWN4         160
  111. #define  Y0            161
  112. #define  Y1            162
  113. #define  Y2            163
  114. #define  Y3            164
  115. #define  Y4            165
  116. #define  Z0            166
  117. #define  Z1            167
  118. #define  Z2            168
  119. #define  Z3            169
  120. #define  Z4            170
  121. #define  FONT_00    171
  122. /* FONT_01 .. FONT_62 not required */
  123. #define  FONT_63    234
  124. #define  FNT1          235
  125. #define  FNT2          236
  126. #define  FNT3          237
  127. #define  FNT4          238
  128. #define  XXX1          239
  129. #define  XXX2          240
  130. #define  XXX3          241
  131. #define  XXX4          242
  132. #define  FNT_DEF1      243
  133. #define  FNT_DEF2      244
  134. #define  FNT_DEF3      245
  135. #define  FNT_DEF4      246
  136. #define  PRE           247
  137. #define  POST          248
  138. #define  POST_POST     249
  139.  
  140. /* Command codes for METAFONT .GF font files */
  141.  
  142. #define  GFPAINT0        0
  143. #define  GFPAINT1       64
  144. #define  GFPAINT2       65
  145. #define  GFPAINT3       66
  146. #define  GFBOC          67
  147. #define  GFBOC1         68
  148. #define  GFEOC          69
  149. #define  GFSKIP0        70
  150. #define  GFSKIP1        71
  151. #define  GFSKIP2        72
  152. #define  GFSKIP3        73
  153. #define  GFNROW0        74
  154. #define  GFEOF         223
  155. #define  GFNROWMAX     238
  156. #define  GFXXX1        239
  157. #define  GFXXX2        240
  158. #define  GFXXX3        241
  159. #define  GFXXX4        242
  160. #define  GFYYY         243
  161. #define  GFNOOP        244
  162. #define  GFCHLOC       245
  163. #define  GFCHLOC0      246
  164. #define  GFPRE         247
  165. #define  GFPOST        248
  166. #define  GFPOSTPOST    249
  167.  
  168. #define  GFID          131
  169.  
  170. /* Command codes for packed (.PK) font files */
  171.  
  172.  
  173. #define  PKXXX1        240
  174. #define  PKXXX2        241
  175. #define  PKXXX3        242
  176. #define  PKXXX4        243
  177. #define  PKYYY         244
  178. #define  PKPOST        245
  179. #define  PKNOOP        246
  180. #define  PKPRE         247
  181.  
  182. #define  PKID           89
  183.  
  184. #define  ABS(x)        ((x) < 0 ? -(x) : (x))
  185. #define  DBGOPT(flag)    (debug_code & (flag))
  186. #define  DBG_PAGE_DUMP    0x0001
  187. #define  DBG_CHAR_DUMP    0x0002
  188. #define  DBG_POS_CHAR    0x0004
  189. #define  DBG_OKAY_OPEN    0x0008
  190. #define  DBG_FAIL_OPEN    0x0010
  191. #define  DBG_OFF_PAGE    0x0020
  192. #define  DBG_FONT_CACHE    0x0040
  193. #define  DBG_SET_TEXT    0x0080
  194. #define  DEBUG_OPEN(fp,fname,openmode) dbgopen(fp,fname,openmode)
  195. #define  DVIFORMAT      2
  196. #define  FIRSTPXLCHAR      0
  197. #define  FT_GF        0
  198. #define  FT_PK        1
  199. #define  FT_PXL        2
  200. #define  IN(a,b,c)    (((a) <= (b)) && ((b) <= (c)))
  201.  
  202. #define  LASTPXLCHAR    255
  203.  
  204. #define  MAGSIZE(f)    ((unsigned long int)(1000.0*(f) + 0.5))
  205.  
  206. #define  MAX(a,b)    ((a) > (b) ? (a) : (b))
  207. #define  MAXFONTS       32   /* number of fonts per job (HPLJ, Canon A2) */
  208. #define  MAXMSG        1024 /* message[] size--big enough for 2 file names*/
  209. #define  MAXPAGE    999  /* limit on number of pages in a DVI file */
  210. #define  MAXREQUEST    256  /* limit on number of explicit page print
  211.                 requests */
  212. #define  MAXSPECIAL    500  /* limit on \special{} string size; it need not
  213.                 be larger than TeX's compile-time parameter
  214.                 buf_siz, which is 500 in Standard TeX-82 */
  215. #define  MAXSTR        257  /* DVI file text string size */
  216.  
  217. #define  MAXFORMATS     12  /* number of font file naming formats */
  218. #define  MIN_M        -500 /* GF character image extents */
  219. #define  MAX_M        1500
  220. #define  MIN_N        -500
  221. #define  MAX_N        1500
  222.  
  223. #define  MIN(a,b)    ((a) < (b) ? (a) : (b))
  224.  
  225. #define NEWLINE(fp) {(void)putc((char)'\r',fp);(void)putc((char)'\n',fp);}
  226.                     /* want <CR><LF> for these systems */
  227.  
  228. #define  NPXLCHARS    256
  229. #define  ONES         ~0  /* a word of all one bits */
  230.  
  231. #define  PIXROUND(n,c)  ((int)(((double)(n))*(c) + 0.5))
  232.  
  233. #define  PXLID           1001
  234.  
  235. #define  SETBIT(m) img_row[(m-min_m) >> 5] |= img_mask[(m-min_m) & 0x1f]
  236. #define  TESTBIT(m) img_row[(m-min_m) >> 5] & img_mask[(m-min_m) & 0x1f]
  237.  
  238. #define  RESOLUTION    (((double)STDMAG)/5.0)    /* dots per inch */
  239. #define  STACKSIZE    100
  240.  
  241. #define  VISIBLE(t) ((t->wp > 0) && (t->hp > 0))
  242.         /* true if both pixel height and width are non-zero */
  243.  
  244. #define  STDMAG        1200        /* use 240dpi fonts */
  245.  
  246. #define MAGTABSIZE (sizeof(mag_table) / sizeof(double))
  247.  
  248. /* ==(declarations)=================================================== */
  249.  
  250. extern char *normaddr(char *p,int byte_offset);
  251. extern void dispchar(unsigned char c);
  252. extern void dvifile(int argc,char * *argv,char *filestr);
  253. extern void dviinit(char *filestr);
  254. extern void dviterm(void );
  255. extern void findpost(void );
  256. extern int fixpos(int cc,long c,double cnvfac);
  257. extern void getbytes(struct _iobuf *fp,char *cp,unsigned char n);
  258. extern void prtpage(long bytepos);
  259.  
  260. extern char *normaddr(char *p,int byte_offset);
  261. extern int main(int argc,char * *argv);
  262. extern void abortrun(int code);
  263. extern void alldone(void );
  264. extern void dbgopen(struct _iobuf *fp,char *fname,char *openmode);
  265. extern void devinit(int argc,char * *argv);
  266. extern void devterm(void );
  267. extern void fatal(char *msg);
  268. extern void initglob(void );
  269. extern void option(char *optstr);
  270. extern void outpaperfeed(int count);
  271. extern int strid2(char *string,char *substring);
  272. extern char *tctos(void );
  273. extern void usage(struct _iobuf *fp);
  274. extern void warning(char *msg);
  275.  
  276. extern char *normaddr(char *p,int byte_offset);
  277. extern double actfact(unsigned long unmodsize);
  278. extern int chargf(unsigned char c,void (*outfcn)());
  279. extern int charpk(unsigned char c,void (*outfcn)());
  280. extern unsigned char get_bit(void );
  281. extern unsigned char get_nybble(void );
  282. extern unsigned int pk_packed_num(void );
  283. extern int charpxl(unsigned char c,void (*outfcn)());
  284. extern void clrbmap(void );
  285. extern void clrrow(void );
  286. extern void fillrect(int x,int y,int width,int height);
  287. extern void fontfile(char * *filelist,char *font_path,char *font_name,int magnification);
  288. extern int fontsub(char *subfont,int *submag,char *TeXfont,int TeXmag);
  289. extern void getfntdf(void );
  290. extern void getpgtab(long lastpageptr);
  291. extern double inch(char *s);
  292. extern void loadchar(unsigned char c);
  293. extern char makechar(unsigned long * *p,unsigned long mask);
  294. extern void movedown(long a);
  295. extern void moveover(long b);
  296. extern void moveto(int x,int y);
  297. extern unsigned long nosignex(struct _iobuf *fp,unsigned char n);
  298. extern void openfont(char *fontname);
  299. extern void virtfree(struct _iobuf *fp);
  300. extern void outline(char *pline);
  301. extern void outrow(unsigned char c,unsigned int yoff);
  302. extern void readfont(long font_k);
  303. extern int readgf(void );
  304. extern int readpk(void );
  305. extern void readpost(void );
  306. extern int readpxl(void );
  307. extern void reldfont(struct font_entry *tfontptr);
  308. extern int rulepxl(unsigned long number,double cnvfac);
  309. extern void setchar(unsigned char c,int update_h);
  310. extern void setfntnm(long k);
  311. extern void setrule(unsigned long height,unsigned long width,int update_h);
  312. extern long signex(struct _iobuf *fp,unsigned char n);
  313. extern void skgfspec(void );
  314. extern void skipfont(long k);
  315. extern void skpkspec(void );
  316. extern void special(char *s);
  317.  
  318. extern char *normaddr(char *p,int byte_offset);
  319. extern void getbmap(void );
  320. extern void prtbmap(void );
  321. extern unsigned long int *rd_bitmap(int , int); 
  322.